package com.ruoyi.common.core.domain.entity.system;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;

/**
 * 景区码头，每个景区可能有1个或多个码头，景区与码头之间属于一对多的关系。对象 wharf
 *
 * @author ruoyi
 * @date 2023-05-22
 */
public class SysWharf extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 码头id，bigint类型，主键，自增。
     */
    private Long wharfId;

    /**
     * 码头的字母序号，char类型，示例：A，B，C, …等。
     */
    @Excel(name = "码头的字母序号，char类型，示例：A，B，C, …等。")
    private String wharfCode;

    /**
     * 码头的名称，char类型。
     */
    @Excel(name = "码头的名称，char类型。")
    private String wharfName;

    /**
     * 码头位置坐标中的经度，decimal(10,6)类型，示例：123.4567890, -123.456789 。
     */
    @Excel(name = "码头位置坐标中的经度，decimal(10,6)类型，示例：123.4567890, -123.456789 。")
    private BigDecimal lon;

    /**
     * 码头位置坐标中的纬度，decimal(10,6)类型，示例：123.4567890, -123.456789 。
     */
    @Excel(name = "码头位置坐标中的纬度，decimal(10,6)类型，示例：123.4567890, -123.456789 。")
    private BigDecimal lat;

    /**
     * 码头所属的景区id，bigint类型。
     */
    @Excel(name = "码头所属的景区id，bigint类型。")
    private Long scenicId;

    @Excel(name = "码头状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /**
     * 泊位朝向，即船头朝向与正北方向的夹角，范围0~360°。
     */
    private Integer heading;
    /**
     * 当前码头对应的电子围栏两固定点之间的直线距离，单位：米。
     */
    private Integer toFixedPointsDistance;
    /**
     * 当前码头对应的电子围栏两固定点的真实gps坐标。
     */
    private String toFixedPointsCoordinates;
    /**
     * 当前码头对应的电子围栏两固定点的百度地图坐标。
     */
    private String toFixedPointsBdCoordinates;

    /**
     * 电子围栏是否需要固定起止点。0：不需要，1：需要。
     */
    private Integer isTwoFixedPointsNeed;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    private SysScenic scenic;

    public Integer getIsTwoFixedPointsNeed() {
        return isTwoFixedPointsNeed;
    }

    public void setIsTwoFixedPointsNeed(Integer isTwoFixedPointsNeed) {
        this.isTwoFixedPointsNeed = isTwoFixedPointsNeed;
    }

    public SysScenic getScenic() {
        return scenic;
    }

    public void setScenic(SysScenic scenic) {
        this.scenic = scenic;
    }

    public void setWharfId(Long wharfId) {
        this.wharfId = wharfId;
    }

    public Long getWharfId() {
        return wharfId;
    }

    public String getWharfCode() {
        return wharfCode;
    }

    public void setWharfCode(String wharfCode) {
        this.wharfCode = wharfCode;
    }

    public String getWharfName() {
        return wharfName;
    }

    public void setWharfName(String wharfName) {
        this.wharfName = wharfName;
    }

    public Integer getHeading() {
        return heading;
    }

    public void setHeading(Integer heading) {
        this.heading = heading;
    }

    public Integer getToFixedPointsDistance() {
        return toFixedPointsDistance;
    }

    public void setToFixedPointsDistance(Integer toFixedPointsDistance) {
        this.toFixedPointsDistance = toFixedPointsDistance;
    }

    public String getToFixedPointsCoordinates() {
        return toFixedPointsCoordinates;
    }

    public void setToFixedPointsCoordinates(String toFixedPointsCoordinates) {
        this.toFixedPointsCoordinates = toFixedPointsCoordinates;
    }

    public String getToFixedPointsBdCoordinates() {
        return toFixedPointsBdCoordinates;
    }

    public void setToFixedPointsBdCoordinates(String toFixedPointsBdCoordinates) {
        this.toFixedPointsBdCoordinates = toFixedPointsBdCoordinates;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public void setLon(BigDecimal lon) {
        this.lon = lon;
    }

    public BigDecimal getLon() {
        return lon;
    }

    public void setLat(BigDecimal lat) {
        this.lat = lat;
    }

    public BigDecimal getLat() {
        return lat;
    }

    public void setScenicId(Long scenicId) {
        this.scenicId = scenicId;
    }

    public Long getScenicId() {
        return scenicId;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("wharfId", getWharfId())
                .append("code", getWharfCode())
                .append("name", getWharfName())
                .append("lon", getLon())
                .append("lat", getLat())
                .append("scenicId", getScenicId())
                .append("status", getStatus())
                .toString();
    }
}
